<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../../vue.js"></script>
    <!-- 引入 js 库 -->
    <script src="../../vue-router_3.0.2.js"></script>
</head>

<body>
    <pre>
       路由嵌套，就是在父路由的组件中，又存在一个子路由
       1、在父路由的组件中 创建路由标签
       2、在父路由的组建中 创建路由占位符
       3、创建 子组件 用于展示
       4、在对应父路由规则中 添加 children 属性 来配置 子路由规则
    </pre>
    <div class="box">
        <!-- router-link 会被转换成 a 标签 ， to 属性 会被转换成 href 属性 ， to 属性的值 会被转换成以 # 开头的 hash 值 -->
        <router-link to='/user'>User</router-link>
        <router-link to='/register'>Register</router-link>
        <!-- 路由占位符 -->
        <router-view></router-view>
    </div>
    <script>
        // 设置组件
        const User = {
            template: '<h1>User 组件</h1>'
        }
        const Register = {
            template: `<div>
            <h1>Register 组件</h1>
            <hr>
            <router-link to='/register/pp'>PP</router-link>
            <router-link to='/register/hh'>HH</router-link>
            <router-view></router-view>
        </div>`
        }
        const pp = {
            template: '<h3>PP 小组件</h3>'
        }
        const HH = {
            template: '<h3>hh 小组件</h3>'
        }

        // 配置路由
        const router = new VueRouter({
            routes: [
                // 重定向
                {
                    path: '/',
                    redirect: 'register'
                }, {
                    path: '/user',
                    component: User
                }, {
                    path: '/register',
                    component: Register,

                    // 子组件路由的地址会被vue自动加上前缀 
                    // 所以书写时 直接 写 最后的地址就好 
                    // 例下：
                    children: [{
                        path: 'pp',
                        component: pp
                    }, {
                        path: 'hh',
                        component: HH
                    }]
                }
            ]
        })


        const vm = new Vue({
            el: '.box',
            data: {},
            //把router挂载到vm中
            router: router
        })
    </script>
</body>

</html>